#ifndef _STONE_KNIGHT_H
#define _STONE_KNIGHT_H

#include "Object.h"
//#include "RedDragonWeapon.h"

#define STONE_KNIGHT_VX			0.05
#define STONE_KNIGHT_VY			1.5
#define STONE_KNIGHT_GRAVITY		0.005
#define STONE_KNIGHT_DISTANCE_X			100

/************************************************************************/
/* Red Dragon Enemy Class                                               */
/************************************************************************/

class StoneKnight : public Object
{
private:
	bool is_turn_left;
	bool is_gravity;

	float count_time;
	float timeDie;
	int center_pos_x;

	Sprite* p_light;

	//Weapon
	//RedDragonWeapon* weapon;

	//Direct
	LPDIRECT3DDEVICE9 d3ddv;
	LPDIRECT3DSURFACE9 BackBuffer;
	LPD3DXSPRITE SpriteHandler;

public:

	/*
	 *	get/set properties
	 */
	OBJECT_TYPE getObjectType();

	/*
	 *	constructor/destructor
	 */	
	StoneKnight(LPDIRECT3DDEVICE9 d3ddv,  LPDIRECT3DSURFACE9 BackBuffer, LPD3DXSPRITE SpriteHandler, float x, float y, int ID, int Object_State, int Direction);
	~StoneKnight();

	/*
	 *	Method
	 */
	void turnLeft();
	void turnRight();

	void move(list<Object*>* obj_list, float TPF);
	void move(list<Object*>* obj_list, float TPF, Object* simon);

	void update(list<Object*>* obj_list, DxInput* input, float TPF);
	void update(list<Object*>* obj_list, DxInput* input, float TPF, Object* simon);

	void render(int cameraX, int cameraY);
	void changeState(int state);
};

#endif